package com.get.backstage.common.result;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel(value = "返回结果类")
public class R<T> {

    /**
     * 状态码
     */
    @ApiModelProperty(value = "状态码")
    private Integer code;
    /**
     * 状态码对应信息
     */
    @ApiModelProperty(value = "状态码对应信息")
    private String msg;
    /**
     * 要返回的数据
     */
    @ApiModelProperty(value = "要返回的数据")
    private T data;

    /**
     * 成功返回
     *
     * @param object 返回数据
     * @return
     */
    public static <T> R<T> success(T object) {
        R resp = new R();
        resp.setCode(ResEnum.SUCCESS.getCode());
        resp.setMsg(ResEnum.SUCCESS.getMsg());
        resp.setData(object);
        return resp;
    }




    /**
     * 成功返回  无数据
     *
     * @return
     */
    public static R success() {
        return success(null);
    }


    public static  R status(boolean flag) {
        return flag ? success("操作成功") : error("操作失败");
    }



    /**
     * 失败返回
     *
     * @param
     * @return
     */
    public static <T> R<T> error(T object) {
        R resp = new R();
        resp.setCode(ResEnum.ERROR_400.getCode());
        resp.setMsg(ResEnum.ERROR_400.getMsg());
        resp.setData(object);
        return resp;
    }

    /**
     * 失败返回
     *
     * @param code
     * @param errMsg
     * @return
     */
    public static R error(int code, String errMsg) {
        R resp = new R();
        resp.setCode(code);
        resp.setMsg(errMsg);
        return resp;
    }






}
